# -*- coding=utf-8-*-
"""
@File:memory_selection
@Author:Created by Han X.Y
@Date:on 2021/7/20 11:03 
"""
"""
给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的，并且给定的数组总是存在多数元素。

 

示例 1：

输入：[3,2,3]
输出：3
示例 2：

输入：[2,2,1,1,1,2,2]
输出：2
 

进阶：

尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/majority-element
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

"""
class Solution:
    def majorityElement(self, nums) :
        tmp={}
        for i in nums:
            tmp[i]=tmp.get(i,0)+1

        for i in tmp.keys():
            if tmp[i]>=len(nums)//2:
                return i

if __name__=="__main__":
    s=Solution()
    nums=[2,2,1,1,1,2,2]
    print(s.majorityElement(nums))

